// 这个有点懵，暂时不学


const utilsModule = ((Function) => {
  // context == ctx
  Function.prototype.MyBind = function (ctx) {
    // console.log(ctx);
    var originFn = this,
        // bind传递test的参数
        args = [].slice.call(arguments, 1)

    return function(){
      // 返回的新函数t的参数列表
      var newArgs = [].slice.call(arguments)
      originFn.apply(ctx, args.concat(newArgs))
    }

  }


})(Function)

function test (user, car){
  console.log(user + '刚买的车' + car);
  console.log(this,arguments);
}


//bind返回一个新函数，实例化之后还是this指向原来test


const t = test.MyBind({
  a:1,
  b:2
}, 'zhangsan');
t('xiandai')
// var a = [1,2];
// console.log(a.slice(1));